using System;
using System.Collections.Generic;
using System.Windows.Controls;

namespace Galaktika.BI.Runtime
{
    using Galaktika.BI.Extensibility;
    using Galaktika.BI.Extensibility.Dom;
    using Galaktika.BI.Extensibility.Dom.Dac;

    public interface IBrickContainer
    {
        string Title { get; }
        string Name { get; }
        IDictionary<string, IList<PrincipalValue>> Visibility { get; }
        object[] Controls { get; }
        Dictionary<string, List<BrickDataBinding>> DataBindings { get; }
        Dictionary<string, string> DataBindingContext { get; }
        object[] Components { get; }
        IBrickContainer[] Templates { get; }
        string Layout { get; }
        Image Image { get; }
        Guid Id { get; }
        IDictionary<string, HelpLinkDescriptor> HelpLinks { get; }
        string StartupContextWindow { get; }
        List<BrickComponent> ToolbarItems{ get; }
        List<BrickUserToolbar> Toolbars { get; }
    }

    public struct HelpLinkDescriptor
    {
        public HelpLinkDescriptor(
            bool useHelp, 
            string helpNamespace, 
            string helpKeyword, 
            string helpNavigator)
        {
            this.UseHelp = useHelp;
            this.HelpNamespace = helpNamespace;
            this.HelpKeyword = helpKeyword;
            this.HelpNavigator = helpNavigator;
        }

        public bool UseHelp;
        public string HelpNamespace;
        public string HelpKeyword;
        public string HelpNavigator;
    }
}
